package solitaire.controle;

import solitaire.InterfacesControle.ICTas;
import solitaire.application.Carte;
import solitaire.application.Colonne;
import solitaire.application.DoubleTas;
import solitaire.application.Sabot;
import solitaire.application.Solitaire;
import solitaire.application.TasDeCartes;
import solitaire.application.TasDeCartesAlternees;
import solitaire.application.TasDeCartesColorees;
import solitaire.application.Usine;

public class CUsine extends Usine{
	private Usine usine;
	
	public CUsine(){
		usine=new Usine();
	}
	
	public CUsine(Usine usine){
		this.usine=usine;
	}
	
	public Carte newCarte(int valeur, int couleur){
		return new CCarte(valeur, couleur);
	}
	
	public Colonne newColonne(String nom, Usine usine){
		return new CColonne(nom, usine);
	}
	
	public DoubleTas newDoubleTas(ICTas cachees, ICTas visibles){
		return new DoubleTas(cachees.getAbstraction(), visibles.getAbstraction());
	}
	
	public Sabot newSabot(String nom, Usine usine){
		return new CSabot(nom, usine);
	}
	
	public Solitaire newSolitaire(String nom, Usine usine){
		return new CSolitaire(nom, (CUsine) usine);
	}
	
	public TasDeCartes newTasDeCartes(String nom, Usine usine){
		return new CTasDeCartes(nom, (CUsine) usine);
	}
	
	public TasDeCartesAlternees newTasDeCartesAlternees(String nom, Usine usine){
		return new CTasDeCartesAlternees(nom, usine);
	}
	
	public TasDeCartesColorees newTasDeCartesColorees(String nom, int couleur, Usine usine){
		return new CTasDeCartesColorees(nom, couleur, usine);
	}
	
}
